package gspushmq.v1.consumer.core;

import gspushmq.model.Data;
import gspushmq.model.Message;
import gspushmq.model.User;

/**
 * @Description 验证参数合法性工具类
 * @Author 成尚佳
 * @Date 2019/1/9 14:18
 * @Version 1.0
 * @company 上海朝阳永续信息技术有限公司
 * @copyright (c) 2015 SunTime Co'Ltd Inc. All rights reserved.
 **/
public class Validate {


    /**
     *
     * @description 验证对象合法性
     *
     * @param object （包括Data和Message，User对象）
     * @version 1.0
     * @author 成尚佳
     * @company 上海朝阳永续信息技术有限公司
     * @copyright (c) 2016 SunTime Co'Ltd Inc.All rights reserved.
     * @date 2019/1/9 13:29
     *
     */
    public static boolean validate(Object object){
        if (object instanceof Data){
            return validateData((Data)object);
        }else if (object instanceof Message){
            return validateMessage((Message)object);
        }else if (object instanceof User){
            return validateUser((User) object);
        }
        return false;
    }


    /**
     *
     * @description 验证Data对象合法性（uuid,mqSubType,mqType,content）
     *
     * @param data
     * @version 1.0
     * @author 成尚佳
     * @company 上海朝阳永续信息技术有限公司
     * @copyright (c) 2016 SunTime Co'Ltd Inc.All rights reserved.
     * @date 2019/1/9 13:31
     *
     */
    private static boolean validateData(Data data){
        if (data == null
                || data.getUuid() == null
                || data.getMqSubType() == null
                || data.getMqType() == null
                || data.getContent() == null){

            return false;
        }
        return true;
    }
    /**
     *
     * @description 验证message对象合法性
     *
     * @param message
     * @version 1.0
     * @author 成尚佳
     * @company 上海朝阳永续信息技术有限公司
     * @copyright (c) 2016 SunTime Co'Ltd Inc.All rights reserved.
     * @date 2019/1/9 13:31
     *
     */
    private static boolean validateMessage(Message message){
        if (message == null ||
                message.getMq_sub_type() == null ||
                message.getMq_type() == null ||
                message.getAccount_id() == null ||
                message.getProduct_line() == null ||
                message.getPro_type() == null){
            return false;
        }
        return true;
    }

    /**
     *
     * @description 验证登录用户对象合法性
     *
     * @param user
     * @version 1.0
     * @author 成尚佳
     * @company 上海朝阳永续信息技术有限公司
     * @copyright (c) 2016 SunTime Co'Ltd Inc.All rights reserved.
     * @date 2019/1/9 13:51
     *
     */
    private static boolean validateUser(User user){
        if (user == null){
            return false;
        }
        if (user.getAccountName() == null ||
                user.getAccountId() == null ||
                user.getProductLine() == null ||
                user.getProType() == null){
            return false;
        }
        return true;
    }
}
